home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 22 / Cream of the Crop 22.iso / os2 / mtic132o.zip / INFOS.RAR / INFOS / TDEF_130.INC < prev    next >
Text File  |  1996-10-13  |  51KB  |  1,431 lines

  1.         {************************************************************}
  2.         {                                                            }
  3.         {                                                            }
  4.         {    ▓███▀█▀█ ▓███▀█ ▓███▀▀  ▓███▀█ ▀▀████▀▀  ▀▀▀ ▓███▀█     }
  5.         {    ▒███   █ ▒███▄  ▒███ ▀█ ▒███▄█   ███░   ███░ ▒███       }
  6.         {    ████   █ ████▄▄ ████▄▄█ ████ █   ███▒   ███▒ ████▄█     }
  7.         {           ▀                                                }
  8.         {    C0P¥Ri6HΓ (c) 1995,96 B¥ DiMeS. ÆLL Ri6HΓS RΣSΣRVΣD     }
  9.         {    ───────────────────────────────────────────────────     }
  10.         {                                                            }
  11.         {             T Y P E N D E K L A R A T I O N                }
  12.         {                                                            }
  13.         {  für MegaTIC Copyright (c) 1995,96 by DiMeS, Dirk Mertens  }
  14.         {              erreichbar über FIDO : 2:2449/528             }
  15.         {                                                            }
  16.         {  Diese Datei dient der Entwicklung von  Zusatzprogrammen   }
  17.         {  für MegaTIC und darf ohne ausdrückliche Genehmigung des   }
  18.         {  Programmautors für  eigene Programme verwendet  werden.   }
  19.         {                                                            }
  20.         {************************************************************}
  21.  
  22. {**************************************************************************
  23.  
  24.   HINWEISE ZUM AUFBAU DER DATENSTRUKTUR
  25.  
  26.   1.) Externe Datentypen --------------------------------------------------
  27.  
  28.   Folgende Datentypen wirst Du in dieser Datei nicht finden :
  29.  
  30.   - PStringCollection
  31.     Dieser Typ ist in der OBJECTS-Unit von Turbo-Vision 2.0 deklariert.
  32.  
  33.  
  34.   2.) IDs und die Zuordnungen --------------------------------------------
  35.  
  36.   Ein Record, das ein Feld mit dem Anfang ID_.... enthält, speichert
  37.   darin eine eigene eindeutige Zuordnungsnummer.
  38.   Für den Zugriff auf ID's anderer Records gibt es Felder, die
  39.   mit ..._ID enden.
  40.  
  41.   Ein Beispiel :
  42.  
  43.      TFileEchoInfo = RECORD
  44.        ..
  45.        ID_FEcho  : Word;  -> Der EIGENE ID (fängt mit ID_ an)
  46.        Packer_ID : Word;  -> Der ID des benutzten Packers (hört mit _ID auf)
  47.        ..
  48.      End;
  49.  
  50.   Im Feld "ID_FEcho" wird ein Index gespeichert, der nicht doppelt vorkommen
  51.   darf, das heisst, das kein anderes Echo denselben Indexwert haben darf.
  52.  
  53.   Im Feld "Packer_ID" wird der Index dex Packers gespeichert, mit dem z.B.
  54.   neue Dateien in diesem Echo gepackt werden sollen.
  55.  
  56.   Durch diese Indexwerte ist es möglich, eindeutige Zuordnungen zu machen.
  57.  
  58.   *** Einfache Zuordnungen ***
  59.   Der Typ TPackerInfo hat das Feld "ID_Packer", in dem ein eindeutiger
  60.   Index für den eigenen Datensatz festgehalten wird.
  61.  
  62.   Der Typ TFileList hat das Feld "Packer_ID", aber in diesem Feld wird
  63.   der ID-Wert des Packers festgehalten, der zum Komprimieren der fertigen
  64.   Dateilisten benutzt wird. Die Überprüfung, ob der aktuelle Packerdatensatz
  65.   derjenige ist, der benutzt werden soll, läuft folgendermassen ab:
  66.  
  67.     FileList.Packer_ID -----> Packer.ID_Packer
  68.  
  69.     If FileList.Packer_ID = Packer.ID_Packer then Benutze_den:=True;
  70.  
  71.   *** Multiple Zuordnungen (Mehrfachauswahl) ***
  72.   Der Typ TUserInfo hat z.B. das Feld FILEECHOS, das ein Array sein muss,
  73.   weil ein User gleichzeitig auf mehrere Echos aufgeschaltet sein kann.
  74.  
  75.   Die Überprüfung, ob ein User auf ein FileEcho aufgeschaltet ist, führt
  76.   man also folgendermassen durch :
  77.  
  78.     If User.FileEchos[FileEcho.ID_FEcho] <> 0 then Aufgeschaltet:=True;
  79.  
  80.   Andere Werte (nicht nur 0 und 1) sind natürlich auch möglich. So kann
  81.   ein User z.B. für ein FileEcho die Werte OFF/ON/RECEIVE/SEND/BOTH haben.
  82.  
  83.     Case User.FileEchos[FileEcho.ID_FEcho] of
  84.       FEcho_OFF     : Write('Nicht aufgeschaltet'); Wert -> 0
  85.       FEcho_ON      : Write('Aufgeschaltet');       Wert -> 1
  86.       FEcho_RECEIVE : Write('Empfangen');           Wert -> 2
  87.       FEcho_SEND    : Write('Senden');              Wert -> 3
  88.       FEcho_BOTH    : Write('Beides');              Wert -> 4
  89.     End;
  90.  
  91.  
  92.   Zwei Beispiele :
  93.  
  94.                          ┌─ FileEcho_1.ID_FEcho
  95.   1) User_1.FileEchos[...1..............]
  96.                       123456789 usw. ist der Array-Index
  97.  
  98.      -> Der Wert von "FileEcho_1.ID_FEcho" ist "4".
  99.      -> "User_1.FileEchos[4]" hat den Wert "1".
  100.      --> User_1 ist mit dem Wert "FEcho_ON" für "FileEcho_1" aufgeschaltet.
  101.  
  102.                          ┌─ FileEcho_1.ID_FEcho
  103.   2) User_2.FileEchos[...3...0..........]
  104.                              └─ FileEcho_2.ID_FEcho
  105.                       123456789 usw. ist der Array-Index
  106.  
  107.      -> Der Wert von "FileEcho_1.ID_FEcho" ist "4".
  108.      -> "User_2.FileEchos[4]" hat den Wert "3".
  109.      --> User_2 ist mit dem Wert "FEcho_SEND" für "FileEcho_1" aufgeschaltet.
  110.  
  111.      -> Der Wert von "FileEcho_2.ID_FEcho" ist "8".
  112.      -> "User_2.FileEchos[8]" hat den Wert "0".
  113.      --> Mit dem Wert "FEcho_OFF" für "FileEcho_2" wird festgelegt, dass
  114.          er auf dieses Echo NICHT aufgeschaltet ist.
  115.  
  116.  
  117.  
  118.   Die Ergebniswerte sind durch die Konstanten festgelegt : FECHO_xxx,
  119.   die Du im Anschluss an die Typendeklaration von TFileEchoInfo findest.
  120.  
  121. {**************************************************************************}
  122.  
  123. {════════════════════════════════════════════════════════════}
  124. {$I MTS_RA.200}    { RA-Filebase-Struktur  v. 2.02  bis 2.50 }
  125. {════════════════════════════════════════════════════════════}
  126. {════════════════════════════════════════════════════════════}
  127. {$I MTS_PB.212}                       { PB-Filebase-Struktur }
  128. {════════════════════════════════════════════════════════════}
  129. {════════════════════════════════════════════════════════════}
  130. {$I MTS_EZY.120}                  { Ezycom-Filebase-Struktur }
  131. {════════════════════════════════════════════════════════════}
  132. {════════════════════════════════════════════════════════════}
  133. {$I MTS_CONC.200}                { Concord-Filebase-Struktur }
  134. {════════════════════════════════════════════════════════════}
  135.  
  136.   { Namen der CONFIG-Dateien }
  137.   CONST
  138.       DataPath        = 'DATA\';  { Pfad für alle CFG-Dateien }
  139.  
  140.       MTCfgName       = DataPath + 'MTIC.CFG';    { Name der Main-Config-Datei }
  141.       AKAName         = DataPath + 'MT_AKAS.CFG'; { AKAs }
  142.       UserName        = DataPath + 'MT_USER.CFG'; { Benutzer }
  143.       UserLibName     = DataPath + 'MT_ULIB.CFG'; { Benutzer-Bibliothek }
  144.       FileGroupName   = DataPath + 'MT_FGRP.CFG'; { Filegruppen }
  145.       FileEchoName    = DataPath + 'MT_FECH.CFG'; { Fileechos }
  146.       StartUpName     = DataPath + 'MT_STRT.CFG'; { Startup-Check Dateinamen }
  147.       AnnounceName    = DataPath + 'MT_ANNO.CFG'; { Announce-Gruppen }
  148.       OriginName      = DataPath + 'MT_ORIG.CFG'; { Origins }
  149.       AliasName       = DataPath + 'MT_ALIA.CFG'; { Magics/Aliase }
  150.       FFindName       = DataPath + 'MT_FIND.CFG'; { Filefind-Areas }
  151.       IndexName       = DataPath + 'MT_INDX.CFG'; { Fast-FileRequest-Index }
  152.       ForwardName     = DataPath + 'MT_FORW.CFG'; { Forward-Konfiguration }
  153.       MagicName       = DataPath + 'MT_MGIC.CFG'; { Magic-Konfiguration }
  154.  
  155.       AnnounceSave    = DataPath + 'MT_ANNO.SAV'; { Announce - Sicherung }
  156.       OutboundName    = DataPath + 'MT_OUTB.CFG'; { Liste der Outbound-Dateien }
  157.       OutboundNew     = DataPath + 'MT_OUTB.TMP'; { Temporärer Outbound }
  158.       TICSave         = DataPath + 'MT_PTIC.SAV'; { Sicherungskopie zu packender TICfiles }
  159.  
  160.       PackerName      = DataPath + 'MT_PACK.CFG';  { Packer-Einstellungen }
  161.  
  162.       MFMExt          = '.MFM';       { Endung der MFM-Dateien }
  163.       MFMPath         = 'MFM\';       { Pfad für MFM-Dateien }
  164.  
  165. {════════════════════════════════════════════════════════════}
  166. { Generelle Typenfestlegungen                                }
  167. {════════════════════════════════════════════════════════════}
  168.   CONST
  169.     MaxGroups = 255;          { Maximale Anzahl DateiGruppen }
  170.     MaxEchos  = 2048;         { Maximale Anzahl DateiEchos   }
  171.  
  172.     sk_AnnHead    = 'ANNHEAD';    { Keywords used in templates }
  173.     sk_AreaStart  = 'AREASTART';
  174.     sk_FileLoop   = 'FILELOOP';
  175.     sk_AreaEnd    = 'AREAEND';
  176.     sk_TotalEnd   = 'TOTALEND';
  177.     sk_AnnFoot    = 'ANNFOOT';
  178.     sk_FLHead     = 'FLHEAD';
  179.     sk_FLFoot     = 'FLFOOT';
  180.  
  181.   TYPE
  182.     PGroupArray = ^TGroupArray;
  183.     TGroupArray = Array[0..MaxGroups] of Word;
  184.  
  185.   TYPE
  186.     PEchoArray  = ^TEchoArray;
  187.     TEchoArray  = Array[0..MaxEchos]  of Word;
  188.  
  189.  
  190. {════════════════════════════════════════════════════════════}
  191. { FIDO-Adresse                                               }
  192. {════════════════════════════════════════════════════════════}
  193.   TYPE
  194.     PAddr = ^TAddr;
  195.     TAddr = Record
  196.       Zone  : Word;
  197.       Net   : Word;
  198.       Node  : Word;
  199.       Point : Word;
  200.     End;
  201.  
  202. {════════════════════════════════════════════════════════════}
  203. { System-Pfade / benutzt in T_MTConfigType                   }
  204. {════════════════════════════════════════════════════════════}
  205.   TYPE
  206.     TPathType = Record
  207.       NetMail,
  208.       Mailer,
  209.       Inbound,
  210.       OutBound,
  211.       Packets,
  212.       TICs,
  213.       Bad,
  214.       Temp,
  215.       Old,
  216.       BBS,
  217.       LOG,
  218.       Sem,
  219.       MsgBase,
  220.       Infected,
  221.       Passthru
  222.                   : String[60];
  223.  
  224.       FreeSpace   : Array[1..549] of Byte;
  225.     End;
  226.  
  227. {════════════════════════════════════════════════════════════}
  228. { System-Konfiguration / benutzt in T_MTConfigType           }
  229. {════════════════════════════════════════════════════════════}
  230.   TYPE
  231.     PDefault = ^TDefault;
  232.     TDefault = Record
  233.       LogStyle       : Word;
  234.       LogMode        : Word;
  235.       CheckCRC       : Word;
  236.       OnCRCError     : Word;
  237.       DIZMode        : Word;
  238.       Other          : Word;
  239.       AddDLC         : Word;
  240.       DLCFormat      : String[7];
  241.       DLCPos         : LongInt;
  242.       System         : Word;
  243.       OutboundSystem : Word;
  244.       TICOptions     : Word;
  245.       BBSType        : Word;
  246.  
  247.       FreeSpace   : Array[1..52] of Byte;
  248.     End;
  249.  
  250.   CONST
  251.     { LogStyle       : Word; }
  252.         ls_FD        = $00;           { FrontDoor }
  253.         ls_BT        = $01;           { BinkleyTerm }
  254.     { LogMode        : Word; }
  255.         lm_Normal    = $00;           { Normaler LOG-Modus }
  256.         lm_Extend    = $01;           { Erweiterter LOG-Modus }
  257.         lm_Debug     = $02;           { Debug LOG-Modus }
  258.     { CheckCRC       : Word; }
  259.         ch_CRC       = $01;           { Überprüfe CRC-Sum ? }
  260.     { OnCRCError     : Word; }
  261.         er_Del       = $00;           { CRC-Error : Datei löschen }
  262.         er_Mov       = $01;           { CRC-Error : Ins BAD-Verzeichnis }
  263.         er_Ign       = $02;           { CRC-Error : Ignorieren }
  264.     { DIZMode        : Word; }
  265.         us_DIZ       = $01;           { Benutze FILE_ID wenn Desc = '' }
  266.         us_LDIZ      = $02;           { Benutze FILE_ID wenn LDesc = '' }
  267.         us_DIZAlways = $04;           { Benutze IMMER die FILE_ID.DIZ }
  268.         us_AddDIZ    = $08;           { Füge FILE_ID.DIZ von LongDesc hinzu }
  269.     { Other          : Word }
  270.         us_Comment   = $01;           { Füge Banner zu Archiven hinzu }
  271.         us_LongInOne = $02;           { LongDesc in einer Textzeile }
  272.         us_StripHi   = $04;           { Strip Hi-ASCII-Characters }
  273.         us_NoANSI    = $08;           { Filter ANSI from LongDesc }
  274.     { AddDLC         : Word; }
  275.         ad_DLC       = $01;           { Füge Downloadcounter hinzu }
  276.     { System         : Word; }
  277.         sy_Sync      = $01;           { Synchronisiere Filebase und MTIC }
  278.         sy_Backup    = $02;           { Erstelle Backup der CFG-Dateien }
  279.         sy_Suppress  = $04;           { Bildschirmausgabe unterbinden }
  280.     { OutboundSystem : Word; }
  281.         ob_FD        = $00;           { FrontDoor }
  282.         ob_BT        = $01;           { BinkleyTerm / Domain-Outbound }
  283.         ob_McM       = $02;           { McMail / Zone-Outbound }
  284.     { TICOptions     : Word; }
  285.         to_AddAKA    = $01;           { Füge alle AKAs hinzu }
  286.         to_AddPoints = $02;           { Füge Points hinzu }
  287.     { BBSType        : Word }
  288.         bt_R20       = $00;           { RA als BBS-Software }
  289.         bt_PB        = $01;           { Proboard }
  290.         bt_Max       = $02;           { Maximus }
  291.         bt_BBS       = $03;           { FILES.BBS - Mailer only }
  292.         bt_EZY       = $04;           { EzyCom }
  293.         bt_R25       = $05;           { RemoteAccess 2.50 }
  294.         bt_CO        = $06;           { Concord }
  295.  
  296. {════════════════════════════════════════════════════════════}
  297. { Einstellungen / benutzt in T_MTConfigType                  }
  298. {════════════════════════════════════════════════════════════}
  299.   TYPE
  300.     PMoreInfo = ^TMoreInfo;
  301.     TMoreInfo = Record
  302.       MaxMsgSize  : Word;             { Size of *.MSG }
  303.       Options     : Word;             { Some options }
  304.       UserSort    : Word;             { How to sort the users }
  305.  
  306.       FBBSOpt     : Word;             { Options for FILES.BBS }
  307.       DLC         : String[5];        { Dormat of Downloadcounter }
  308.       ListChar    : String[1];        { ListChar for FILES.BBS }
  309.       Spaces      : LongInt;          { Spaces to indent }
  310.  
  311.       AnnOpt      : Word;             { Options for Announcements }
  312.       AreaSep     : String[1];        { Character for Area-separation }
  313.       AnnOr       : Word;             { Orientation for AreaDesc }
  314.  
  315.       _4DOSOpt    : Word;             { Options for DESCRIPT.ION }
  316.       _4MaxLen    : LongInt;
  317.  
  318.       DateFmt     : Word;             { Format des Datums }
  319.  
  320.       FreeSpace   : Array[1..65] of Byte;
  321.     End;
  322.  
  323.   CONST
  324.     { MaxMsgSize }
  325.       mm_16 = $00;                    { 16 k }
  326.       mm_32 = $01;                    { 32 k }
  327.       mm_64 = $02;                    { 64 k }
  328.  
  329.     { Options }
  330.       mo_SecureTIC = $01;             { Secure TIC filenames }
  331.       mo_Msg2Sys   = $02;             { At Error : Netmail to Sysop }
  332.       mo_CloseWin  = $04;             { Close graphical window }
  333.       mo_IgnoreBSY = $08;             { Ignore MTIC.BSY }
  334.  
  335.     { UserSort }   {+}
  336.       us_SurName   = $00;             { Sort users for surname... }
  337.       us_LastName  = $01;             { ... lastname ... }
  338.       us_AKA       = $02;             { ... or AKA }
  339.  
  340.     { FBBSOpt }
  341.       fo_First     = $01;             { New files at begin of FILES.BBS }
  342.       fo_AddDLC    = $02;             { Add Downloadcounter }
  343.       fo_AddSize   = $04;             { Add filesize }
  344.       fo_AddDate   = $08;             { Add filedate }
  345.  
  346.     { AnnOpt }     {+}
  347.       ao_Hard      = $01;             { use hardcoded announcements }
  348.       ao_Size      = $02;             { Display filesize }
  349.       ao_Date      = $04;             {    "    filedate }
  350.       ao_Area      = $08;             {    "    area statistics }
  351.       ao_Total     = $10;             {    "    total statistics }
  352.       ao_High      = $20;             { highlight area with ">" }
  353.  
  354.     { AnnOr }
  355.       ao_Left      = $00;             { Orientation Left }
  356.       ao_Center    = $01;             { Centered }
  357.       ao_Right     = $02;             { Right }
  358.  
  359.     { _4DOSOpt }    {+}
  360.       fd_Update    = $01;             { Update DESCRIPT.ION }
  361.       fd_StripHi   = $02;             { Filter HiAsc from Desc }
  362.       fd_StripDLC  = $04;             { Filter DLC from Desc }
  363.  
  364.     { DateFmt }
  365.       df_german  = 01;                { DD/MM/YY }
  366.       df_america = 02;                { MM/DD/YY }
  367.       { intern }
  368.       df_day     = 05;
  369.       df_month   = 06;
  370.       df_year    = 07;
  371.  
  372. {════════════════════════════════════════════════════════════}
  373. { BBSInfo - / benutzt in T_MTConfigType                      }
  374. {════════════════════════════════════════════════════════════}
  375.   TYPE
  376.     PBBSInfo = ^TBBSInfo;
  377.     TBBSInfo = Record
  378.       BBSName     : String[30];  { Name der BBS }
  379.       SysopName   : String[30];  { Name des Sysops }
  380.       Location    : String[30];  { Ort der BBS }
  381.  
  382.       Banner      : STRING[30];  { Name des Bannerfiles für Archive }
  383.  
  384.       Sem_Rescan  : String[12];  { Rescan-Semaphore }
  385.  
  386.       ScanUtilDOS : String[70];  { Virenscanner für DOS }
  387.       ScanUtilOS2 : String[70];  { Virenscanner für OS2 }
  388.       ScanError   : LongInt;     { Errorlevel für Virenscanner }
  389.       ScanOptions : Word;        { Aktion bei gefundenem Virus }
  390.  
  391.       CRCFile     : String[49];  { Skullcheck-CRC-Datei }
  392.       CRCCheck    : Word;        { Auch CRC-Summen überprüfen }
  393.       CRCVersion  : Word;        { Text oder binär }
  394.  
  395.       MaxTICAge   : LongInt;     { Maximales Alter der TIC-Dateien }
  396.  
  397.       FreeSpace   : Array[1..24] of Byte;
  398.     End;
  399.  
  400.  
  401.     CONST
  402.       { ScanOptions }
  403.       so_MoveBad = $01;   { Ins BAD-Verzeichnis verschieben }
  404.       so_Delete  = $02;   { Lösche Datei }
  405.       so_Netmail = $04;   { Netmail an den Sysop }
  406.       so_Boot    = $08;   { Starte Rechner neu }
  407.  
  408.       { CRC_Check }
  409.       cc_UseIt     = $01;  { SkChk-Liste aktivieren }
  410.       cc_CheckCRC  = $02;  { Auch CRC-Daten überprüfen }
  411.       cc_CheckSize = $04;  { Auch Dateigrösse überprüfen }
  412.  
  413. {════════════════════════════════════════════════════════════}
  414. { MFMInfo / benutzt in T_MTConfigType                        }
  415. {════════════════════════════════════════════════════════════}
  416.   TYPE
  417.     PMFMInfo = ^TMFMInfo;
  418.     TMFMInfo = Record
  419.       Header,              { Header jeder Nachricht }
  420.       MT_Help,             { Hilfe zur Bedienung }
  421.       MT_Info,             { Info über MegaTIC }
  422.       U_Status,            { Userstatus }
  423.       U_InfoTxt,           { UserInfo }
  424.       L_List,              { Liste aller Echos }
  425.       A_Link,              { Antwort auf eine zugeschaltete Area }
  426.       A_Unlink,            { Antwort auf eine abgeschaltete Area }
  427.       L_Link,              { Liste aller angeschlossenen Areas }
  428.       L_Unlink,            { Liste aller nicht angeschlossenen Areas }
  429.       U_Switch,            { Antwort auf einen geänderten Scahlter }
  430.       U_AccWarn,           { Account-Warung }
  431.       U_AccBye,            { Abschaltung wegen Account = 0 }
  432.       Footer,              { Footer jeder Nachricht }
  433.  
  434.       AnnHead,             { Announcen-Header }
  435.       AnnFoot,             { Announcen-Footer }
  436.  
  437.       FileSend,            { Der Befehl %SENDME }
  438.  
  439.       Request,             { Template für File-Requests }
  440.       FileFind,            { Antwort für File-Find-Requests }
  441.       Remind,              { Anschrieb für Remind-System }
  442.       Error,               { Allgemeines Error-Template }
  443.       AnnTPL,              { Allgemeines Announce-Template }
  444.       FList                { Template for Filelist }
  445.  
  446.                   : STRING[8];
  447.  
  448.       FreeSpace   : ARRAY[1..81] OF Byte;
  449.     End;
  450.  
  451. {════════════════════════════════════════════════════════════}
  452. { FILELISTEN-Generator / benutzt in T_MTConfigType           }
  453. {════════════════════════════════════════════════════════════}
  454. TYPE
  455.   TFileList = Record
  456.     Path     : String[50];  { Pfad für die Listen }
  457.     NameAll  : String[12];  { Name der All-Files-Liste }
  458.     NameNew  : String[12];  { Name der New-Files-Liste }
  459.     DaysNew  : LongInt;     { Maß für dafür, ob Dateien neu sind }
  460.     MinSec   : LongInt;     { Minimale und Maximale DL-Sec einer Area um.. }
  461.     MaxSec   : LongInt;     { ..in die Filelisten aufgenommen zu werden }
  462.     BBSBoard : String[39];  { Name der BBS-Area }
  463.     Options  : Word;
  464.  
  465.     DirList  : String[12];  { Liste mit Pfaden für Requestprozessor }
  466.     DirExt   : String[3];   { Optionale Extension für jede Pfadangabe }
  467.  
  468.     FreeSpace : Array[1..10] of Byte;
  469.  
  470.     Packer_ID : Word;       { ID des zu benutzenden Packers }
  471.     Board_ID  : Word;       { BBS-Board für die fertigen Listen }
  472.   End;
  473.  
  474. CONST
  475.   { FileList-Infos }
  476.     fi_Name = $01;
  477.     fi_Size = $02;
  478.     fi_Date = $04;
  479.     fi_DL   = $08;
  480.     fi_Desc = $10;
  481.  
  482.   { FileList-Options }
  483.     fo_Del  = $01;
  484.     fo_KeyW = $02;
  485.  
  486. {════════════════════════════════════════════════════════════}
  487. { Upload-Checker Infos / benutzt in T_MTConfigType           }
  488. {════════════════════════════════════════════════════════════}
  489.   TYPE
  490.     PMaxInfoRec = ^TMaxInfoRec;
  491.     TMaxInfoRec = Record
  492.       FileArea  : Word;
  493.       ACS       : Word;
  494.       Desc      : String[60];
  495.       Download  : String[80];
  496.       Upload    : String[80];
  497.       AreaType  : Byte;
  498.     End;
  499.  
  500.   TYPE
  501.     PUploadInfo = ^TUploadInfo;
  502.     TUploadInfo = Record
  503.       BoardName  : STRING[40];   { Name der BBS-Area }
  504.       Options    : Word;
  505.       Check      : Word;         { Prüfe alle/neu neue Files }
  506.       FileInfos  : Word;         { Füge JPG/GIF specs hinzu  }
  507.  
  508.       NoCheck    : ARRAY[1..8] OF STRING[12]; { Übergehe diese Dateinamen }
  509.  
  510.       SaveSpace  : ARRAY[1..194] OF Byte;
  511.  
  512.       LastCall   : LongInt;      { Letzter Aufruf der Upscan-Funktion }
  513.  
  514.       RABoard    : FILESRecord;  { Daten des RA-Boards für Uploads }
  515.       PBBoard    : TPBFileArea;  { Daten des PB-Boards für Uploads }
  516.       MAXBoard   : TMaxInfoRec;  { Daten des MAX-Boards für Uploads }
  517.  
  518.       BoardNr    : Word;         { Nummer des Boards für Uploads }
  519.       Packer_ID  : Word;         { ID des zu benutzenden Umpackers }
  520.     End;
  521.  
  522.   CONST
  523.     { Check }
  524.     uc_New   = $00;
  525.     uc_All   = $01;
  526.  
  527.     { FileInfos }
  528.     uf_AddSpec = $01;
  529.  
  530. {════════════════════════════════════════════════════════════}
  531. { Listen-To / Höre auf / benutzt in T_MTConfigType           }
  532. {════════════════════════════════════════════════════════════}
  533.  
  534.   TYPE
  535.     TListenInfo = RECORD
  536.       Name      : ARRAY[1..8] OF STRING[15]; { Höre auf diese Aliasnamen }
  537.       Options   : Word;
  538.       SaveSpace : Array[1..30]  of Byte;
  539.     END;
  540.  
  541.   CONST
  542.     { ListenInfo.Options }
  543.     lo_LIST     = $01;
  544.     lo_UNLINKED = $02;
  545.     lo_PAUSE    = $04;
  546.     lo_RESUME   = $08;
  547.     lo_SENDME   = $10;
  548.     lo_RESCAN   = $20;
  549.     lo_TICPACK  = $40;
  550.     lo_FILEPACK = $80;
  551.  
  552. {════════════════════════════════════════════════════════════}
  553. { Infos für Requestprozessor / benutzt in T_MTConfigType     }
  554. {════════════════════════════════════════════════════════════}
  555.   TYPE
  556.     PLimitInfo = ^TLimitInfo;
  557.     TLimitInfo = Record
  558.       Files, Time, Byte, AMin, AMax : LongInt;
  559.     End;
  560.  
  561.     PConnectInfo = ^TConnectInfo;
  562.     TConnectInfo = Record
  563.       Sysop   : String[20];
  564.       AKA     : String[20];
  565.       Baud    : LongInt;
  566.       Session : String[20];
  567.       Port    : Byte;
  568.     End;
  569.  
  570.     PRequestInfo = ^TRequestInfo;
  571.     TRequestInfo = RECORD
  572.       Normal,
  573.       Protected : TLimitInfo; { Limits für div. Sessiontypen }
  574.       Fail     : String[49];  { Name des Files bei Fehlschlägen }
  575.       InfoFile : String[40];  { Infofile über die BBS }
  576.       Options  : Word;
  577.       TICArea  : String[30];
  578.  
  579.       Mode     : Word;
  580.  
  581.       SaveSpace : ARRAY[1..5] OF Byte;
  582.     END;
  583.  
  584.   CONST
  585.     { Options }
  586.     ro_Report    = $01;  { Sende Report }
  587.     ro_CopySysop = $02;  { Kopie des Reports an Sysop }
  588.     ro_Exist     = $04;  { Überprüfe Dateien auf Existenz }
  589.     ro_SendTIC   = $08;  { Sende TIC-Files }
  590.  
  591.     { Mode }
  592.     rm_McM       = $00;  { Mcmail als Mailer }
  593.     rm_Cant      = $01;  { Cantaloup oder Binkley als Mailer }
  594.     rm_FD        = $02;  { Frontdoor }
  595.     rm_IM        = $03;  { InterMail }
  596.  
  597.  
  598. {════════════════════════════════════════════════════════════}
  599. { Infos für Filefind-System / benutzt in T_MTConfigType      }
  600. {════════════════════════════════════════════════════════════}
  601.  
  602.  TYPE
  603.    PFFindInfo = ^TFFindInfo;
  604.    TFFindInfo = Record
  605.      MaxFinds   : LongInt;   { Die Suche nach x Vorkommen abbrechen }
  606.      DaysOld    : LongInt;   { Max. Alter von FileFind-Requests }
  607.      AMin, AMax : LongInt;   { MIN und MAX Downloadsec. der Areas }
  608.      Options    : Word;
  609.  
  610.      SaveSpace  : Array[1..20] of Byte;
  611.    End;
  612.  
  613.  CONST
  614.    { Options }
  615.    fo_Local = $01;           { Auch lokale Requests ausführen }
  616.    fo_RCVD  = $02;           { RCVed-Flag, auch wenn Suche nicht erfolgreich }
  617.  
  618. {════════════════════════════════════════════════════════════}
  619. { Haupt-Konfiguration von MegaTIC / Datei : MTIC.CFG         }
  620. {════════════════════════════════════════════════════════════}
  621.   TYPE
  622.     T_MTConfigType = Record
  623.       Language  : Word;         { Sprache }
  624.       Path      : TPathType;    { SETUP : Pfade }
  625.       Default   : TDefault;     { SETUP : System }
  626.       BBSInfo   : TBBSInfo;     { SETUP : Schnittstellen }
  627.       MFM       : TMFMInfo;     { SETUP : MFM-Dateinamen }
  628.       FList     : TFileList;    { SETUP : Filelisten }
  629.       Upload    : TUploadInfo;  { SETUP : Uploadscanner }
  630.       Listen    : TListenInfo;  { SETUP : Aliasnamen }
  631.       Request   : TRequestInfo; { SETUP : Requestprozessor }
  632.       FFInd     : TFFindInfo;   { SETUP : FileFind-System }
  633.       More      : TMoreInfo;    { SETUP : Einstellungen }
  634.  
  635.       FreeSpace : ARRAY[1..70] OF Byte;
  636.  
  637.       TICNumber : LongInt;    { Nächste TIC-Nummer für ausgehende TICs }
  638.       LastCall  : LongInt;    { Wurde MTIC heute schon aufgerufen ? }
  639.       CRC32     : LongInt;    { Viren Check-CRC-Summe von MegaTIC }
  640.       Color     : String[12]; { Name der aktuellen Farbpalette }
  641.       Version   : String[10]; { Version des Programms }
  642.       Date      : LongInt;    { Complilier-Datum des Programms }
  643.     End;
  644.  
  645.     F_MTConfigType = File of T_MTConfigType;
  646.  
  647. {************************************************************}
  648. {************************************************************}
  649. {                                                            }
  650. { Ab hier beginnen die Datentypen, die in Listen vorkommen,  }
  651. { also z.B. User, FileEchos usw.                             }
  652. { Die Daten sind in den entprechenden Dateien sequentiell    }
  653. { gespeichert und es kann mit einem normalen Typ der Art     }
  654. { TYPE FILETYP : FILE of TYP                                 }
  655. { auf die Daten zugegriffen werden.                          }
  656. {                                                            }
  657. {************************************************************}
  658. {************************************************************}
  659.  
  660.  
  661. {════════════════════════════════════════════════════════════}
  662. { RAINFO / Defaultwerte für die automatische Erstellung von  }
  663. {          Echos in der RA-Filebase / benutzt in             }
  664. {          TFileGroupInfo                                    }
  665. {════════════════════════════════════════════════════════════}
  666. TYPE
  667.   PRA_Info = ^TRA_Info;
  668.   TRA_Info = Record
  669.     Start : LongInt;
  670.  
  671.     DLSec : LongInt;
  672.     DL_A, DL_B, DL_C, DL_D : String[8];
  673.  
  674.     LiSec : LongInt;
  675.     Li_A, Li_B, Li_C, Li_D : String[8];
  676.  
  677.     ULSec : LongInt;
  678.     UL_A, UL_B, UL_C, UL_D : String[8];
  679.  
  680.     Switches : Word;
  681.  
  682.     DL_Days,
  683.     FD_Days,
  684.     Move_Area,
  685.     Min_Age   : LongInt;
  686.  
  687.     Password : String[15];
  688.     Group,
  689.     Def_Cost,
  690.     Uploads,
  691.     Alt1,
  692.     Alt2,
  693.     Alt3     : LongInt;
  694.  
  695.     Switches2 : Word;
  696.   End;
  697.  
  698. {════════════════════════════════════════════════════════════}
  699. { PBINFO 2.11 / Proboard / benutzt in TFileGroupInfo         }
  700. {════════════════════════════════════════════════════════════}
  701. TYPE
  702.   PPB_Info = ^TPB_Info;
  703.   TPB_Info = Record
  704.     Start      : LongInt;
  705.  
  706.     Flags      : String[32];
  707.     Level      : LongInt;
  708.  
  709.     Options    : Word;
  710.     Groups     : Array[0..3] of LongInt;
  711.     AllGroups  : Word;
  712.     DateFmt    : Word;
  713.  
  714.     MaxFiles   : LongInt;
  715.     MaxKb      : LongInt;
  716.     MinAge     : LongInt;
  717.  
  718.     FreeSpace   : Array[1..125] of Byte;
  719.   End;
  720.  
  721. {════════════════════════════════════════════════════════════}
  722. { COINFO 2.11 / Concord / benutzt in TFileGroupInfo          }
  723. {════════════════════════════════════════════════════════════}
  724. TYPE
  725.   TSecFlag = Record
  726.     Flag : String[8];
  727.   End;
  728.  
  729.   TSecRec = Record
  730.     Level : LongInt;
  731.     Flags : Array[1..10] of TSecFlag;
  732.     anAge : LongInt;
  733.     aBPS  : LongInt;
  734.   End;
  735.  
  736.   PCO_Info = ^TCO_Info;
  737.   TCO_Info = Record
  738.     Start      : LongInt;
  739.     Active     : Word;
  740.     aGroup     : String[3];
  741.     Upload     : LongInt;
  742.     aPassword  : String[8];
  743.     OpenF      : String[5];
  744.     OpenT      : String[5];
  745.     Offline    : Word;
  746.     Options    : Word;
  747.     Sec        : Array[1..3] of TSecRec;
  748.   End;
  749.  
  750. {════════════════════════════════════════════════════════════}
  751. { MAXINFO / Maximus / benutzt in TFileGroupInfo              }
  752. {════════════════════════════════════════════════════════════}
  753. TYPE
  754.   PMAX_Info = ^TMAX_Info;
  755.   TMAX_Info = Record
  756.     Start       : LongInt;
  757.     Security    : Word;
  758.     Attribute   : Word;
  759.     Upload      : String[90];
  760.     FreeSpace   : Array[1..101] of Byte;
  761.   End;
  762.  
  763. {════════════════════════════════════════════════════════════}
  764. { EZYInfo / EzyCom  / benutzt in TFileGroupInfo              }
  765. {════════════════════════════════════════════════════════════}
  766. TYPE
  767.   TEZFilePathInfo = Record
  768.     FPSec       : LongInt;               { FilePath Flags }
  769.     FP_A, FP_B, FP_C, FP_D : String[8];
  770.  
  771.     Password  : String[8];
  772.     MinAge    : LongInt;
  773.     Attribute : Word;
  774.   End;
  775.  
  776.   PEZ_Info = ^TEZ_Info;
  777.   TEZ_Info = Record
  778.     Start       : LongInt;
  779.  
  780.     LISec       : LongInt;
  781.     LI_A, LI_B, LI_C, LI_D : String[8];  { DL Flags }
  782.     UPSec       : LongInt;
  783.     UP_A, UP_B, UP_C, UP_D : String[8];  { DL Flags }
  784.     SYSec       : LongInt;
  785.     SY_A, SY_B, SY_C, SY_D : String[8];  { Sys Flags }
  786.  
  787.  
  788.     Attribute   : Word;
  789.     Convert     : Word;
  790.  
  791.     FileGroup   : String[1];
  792.     MinimumAge  : LongInt;
  793.     UpFileArea  : LongInt;
  794.  
  795.     FilePath : TEZFilePathInfo;
  796.  
  797.     FreeSpace   : Array[1..7] of Byte;
  798.   End;
  799.  
  800. {════════════════════════════════════════════════════════════}
  801. { File Group                                                 }
  802. {════════════════════════════════════════════════════════════}
  803.   TYPE
  804.     TEchoMatching = Record
  805.       Name : Array[1..6] of String[15];
  806.     End;
  807.  
  808.   TYPE
  809.     PAutoAddInfo = ^TAutoAddInfo;
  810.     TAutoAddInfo = Record
  811.       AutoAddPath  : String[70];    { Basispfad für autom. erstellte Echos }
  812.  
  813.       Batch        : String[60];    { Vorgabewerte für automatisch erstelltes }
  814.       OrderSec     : LongInt;       { Fileecho. Siehe auch TFileEchoInfo }
  815.       WriteSec     : LongInt;
  816.       Options      : Word;
  817.       Banner       : Word;
  818.       Replaced     : Word;
  819.       Incoming     : Word;
  820.  
  821.       PackerName   : String[20];    { nur programmintern/Name des Packers }
  822.       KeepDays     : LongInt;
  823.       MaintOpt     : Word;
  824.  
  825.       Packer_ID    : Word;          { ID des zu verwendenden Packers }
  826.     End;
  827.  
  828.   TYPE
  829.     PFileGroupInfo = ^TFileGroupInfo;
  830.     TFileGroupInfo = Record
  831.       Description : String[30];        { Beschreibung der Dateigruppe }
  832.       AKAString   : String[19];        { Die benutzte AKA als Text }
  833.       Options     : Word;
  834.  
  835.       FreeSpace   : Array[1..24] of Byte;
  836.  
  837.       TICList     : Pointer;    { nur programmintern }
  838.       RA_Info     : TRA_Info;   { Default-Settings für RemoteAcess-Echos }
  839.       PB_Info     : TPB_Info;   { Default-Settings für Proboard-Echos }
  840.       MAX_Info    : TMAX_Info;  { Default-Settings für Maximus-Echos }
  841.       EZ_Info     : TEZ_Info;   { Default-Settings für EzyCom-Echos }
  842.  
  843.       AKA_ID      : Word;       { ID der zu verwendenden AKA }
  844.       ID_FGroup   : Word;       { ID der FileGruppe }
  845.  
  846.       EchoMatch   : TEchoMatching; { Echozuordnung per Name z.B. GFD* }
  847.       AutoData    : TAutoAddInfo;
  848.     End;
  849.  
  850.   CONST
  851.     { Multiple Werte für ID_FGroup }
  852.     FGroup_OFF    = 00;        { nicht aufgeschaltet }
  853.     FGroup_ON     = 01;        { aufgeschaltet }
  854.     FGroup_AUTO   = 02;        { aufgeschaltet und autoconnect }
  855.     FGroup_CR_ADD = 03;        { aufgeschaltet, autoconnect und create }
  856.     FGroup_CR_NRM = 04;        { aufgeschaltet und create }
  857.  
  858.     { options }
  859.     go_NoAutoZone = $01;       { AutoZone AKA matching }
  860.  
  861. {════════════════════════════════════════════════════════════}
  862. { Packer info - Einstellungen für Packprogramme              }
  863. {════════════════════════════════════════════════════════════}
  864.   TYPE
  865.     TParamInfo = Record
  866.       Path        : String[60];   { Pfad zum Packer }
  867.       Pack_w      : String[60];   { Befehl zum Packen mit Pfad }
  868.       Pack_o      : String[60];   { Befehl zum Packen ohne Pfad }
  869.       Unpack_w    : String[60];   { Befehl zum Entpacken mit Pfad }
  870.       Unpack_o    : String[60];   { Befehl zum Entpacken ohne Pfad }
  871.       Banner      : String[60];   { Befehl zum Banner zufügen/löschen }
  872.       LChar       : String[01];   { List-Character }
  873.     End;
  874.  
  875.   TYPE
  876.     PPackerInfo = ^TPackerInfo;
  877.     TPackerInfo = Record
  878.       Description : String[30];   { Allgemeine Beschreibung }
  879.       PType       : Word;         { Type: Packer or ACU }
  880.       Ext         : String[3];    { Extension }
  881.       ID          : String[12];   { Identifizierungs-String des Packprogramms }
  882.  
  883.       DOSp        : TParamInfo;   { DOS-Parameter }
  884.       OS2p        : TParamInfo;   { OS2-Parameter }
  885.  
  886.       ID_Packer   : Word;         { ID des Packers }
  887.     End;
  888.  
  889.  CONST
  890.    { PType }
  891.      pt_Packer  = $00;
  892.      pt_ACU     = $01;
  893.  
  894. {════════════════════════════════════════════════════════════}
  895. { TICInfo / Eintrag in der TIC-List mit Infos über TIC-File  }
  896. {           nur programmintern / wird nicht auf Festplatte   }
  897. {           gespeichert                                      }
  898. {════════════════════════════════════════════════════════════}
  899.   TYPE
  900.     PTICInfo = ^TTICInfo;
  901.     TTICInfo = Record
  902.       Name     : String[40];
  903.  
  904.       FName    : String[12];
  905.       FSize    : LongInt;
  906.       FDesc    : String;
  907.     End;
  908.  
  909. {════════════════════════════════════════════════════════════}
  910. { Pack Info / Record des Users mit Infos über zu packende    }
  911. {             TIC-Dateien / nur programmintern / wird nicht  }
  912. {             auf Festplatte gespeichert                     }
  913. {════════════════════════════════════════════════════════════}
  914.   TYPE
  915.     PTICPackInfo = ^TTICPackInfo;
  916.     TTICPackInfo = Record
  917.       PackCount   : Word;
  918.       PackerToUse : Word;
  919.  
  920.       TICPackList : PStringCollection;
  921.       ToAddr,
  922.       FrAddr      : TAddr;
  923.     End;
  924.  
  925. {════════════════════════════════════════════════════════════}
  926. { AKA                                                        }
  927. {════════════════════════════════════════════════════════════}
  928.   TYPE
  929.     PAKAInfo = ^TAKAInfo;
  930.     TAKAInfo = Record
  931.       Zone        ,
  932.       Net         ,
  933.       Node        ,
  934.       Point       : LongInt;
  935.       Domain      : String[15];
  936.       MainAKA     : Word;
  937.       Dimension   : Word;
  938.  
  939.       FreeSpace   : Array[1..18] of Byte;
  940.  
  941.       ID_AKA      : Word; { ID der AKA }
  942.     End;
  943.  
  944.   CONST
  945.     NullAKA : TAKAInfo = (Zone:0; Net:0; Node:0; Point:0);
  946.  
  947.   CONST
  948.     { AKA.Dimension }
  949.     ad_3D = $00;
  950.     ad_4D = $01;
  951.  
  952. {════════════════════════════════════════════════════════════}
  953. { User Library                                               }
  954. {════════════════════════════════════════════════════════════}
  955.   TYPE
  956.     PUserLibInfo = ^TUserLibInfo;
  957.     TUserLibInfo = Record
  958.       Description : String[20];
  959.       Active      : Word;
  960.       Connect     : Word;
  961.       Domain      : String[15];
  962.       SecLevel    : LongInt;
  963.       Rescan      : LongInt;
  964.       Account     : String[7];
  965.       AccountType : Word;
  966.       Switches    : Word;
  967.       MailF       : Word;
  968.       FileF       : Word;
  969.  
  970.       FreeSpace   : Array[1..45] of Byte;
  971.  
  972.       FileGroups  : TGroupArray; { Zugeordnete Filegruppen }
  973.       FileEchos   : TEchoArray;  { Zugeordnete Fileechos }
  974.     End;
  975.  
  976. {════════════════════════════════════════════════════════════}
  977. { User Info                                                  }
  978. {════════════════════════════════════════════════════════════}
  979.   TYPE
  980.     PUserInfo = ^TUserInfo;
  981.     TUserInfo = Record
  982.       Name        : String[40];
  983.       Zone        ,
  984.       Net         ,
  985.       Node        ,
  986.       Point       : LongInt;
  987.       Active      : Word;         { active/remind/paused }
  988.       Connect     : Word;         { Send/receive/both }
  989.       Domain      : String[15];
  990.       PassWord    : String[10];
  991.       SecLevel    : LongInt;
  992.       Rescan      : LongInt;
  993.       AccountHandle : Word;       { Sende Netmail-Warnung / Deaktiviere Sub-AKA }
  994.       WarningDays   : LongInt;
  995.       Switches    : Word;         { Verschiedene Schalter }
  996.       MailF       : Word;         { Flags für Mails }
  997.       FileF       : Word;         { Flags für Files }
  998.  
  999.  
  1000.       ID_User     : Word;         { ID des Users }
  1001.  
  1002.       FreeSpace   : Array[1..45] of Byte;
  1003.       ID_SubAKA   : LongInt;      { ID der Sub-AKA; programmintern }
  1004.  
  1005.       PackerInfo  : TTICPackInfo; { nur programmintern / s.o. }
  1006.       SubAKAName  : String[12];   { Name der Sub-AKA-Datei }
  1007.  
  1008.       FileGroups  : TGroupArray;  { Dem User zugeordnete Filegruppen }
  1009.       FileEchos   : TEchoArray;   { Dem User zugeordnete Fileechos }
  1010.     End;
  1011.  
  1012.   CONST
  1013.     { Active }
  1014.     ui_Active  = $01;
  1015.     ui_Remind  = $02;
  1016.     ui_Paused  = $04;
  1017.  
  1018.     { Connect }
  1019.     ui_ReceiveFrom = $00;
  1020.     ui_SendTo      = $01;
  1021.     ui_Both        = $02;
  1022.  
  1023.     { Switches }
  1024.     ui_TICS    = $01;   { User bekommt TICs }
  1025.     ui_Pack    = $02;   { Packet TIC-Dateien }
  1026.     ui_InfoTxt = $04;   { User bekommt Info-Texte }
  1027.     ui_4D      = $08;   { Sende 4D-Seen-Bys }
  1028.     ui_Strip   = $10;   { Keine Seen-Bys in TIC-Dateien }
  1029.     ui_PackUse = $20;   { Packe auch Usefiles in Archive }
  1030.  
  1031.     { Msg-Typen für MailF und FileF }
  1032.     ua_Crash  = $01;
  1033.     ua_Hold   = $02;
  1034.     ua_Direct = $04;
  1035.  
  1036.  
  1037. {════════════════════════════════════════════════════════════}
  1038. { File Echo                                                  }
  1039. {════════════════════════════════════════════════════════════}
  1040.   TYPE
  1041.     PFileEchoInfo = ^TFileEchoInfo;
  1042.     TFileEchoInfo = Record
  1043.       Name        : String[50];
  1044.       Description : String[50];
  1045.       Path        : String[70];
  1046.  
  1047.       Batch       : String[70];
  1048.       BBSArea     : LongInt;    { interne BBS-Nummer des FileEchos }
  1049.       Dead        : LongInt;    { soviel Tage kamen keine Files mehr }
  1050.  
  1051.       OrderSec    : LongInt;
  1052.       WriteSec    : LongInt;
  1053.  
  1054.       Options     : Word;       { Verschiedene Settings }
  1055.  
  1056.       Banner      : Word;       { Was soll mit einem Archiv-Banner passieren }
  1057.       Replaced    : Word;       { Was soll mit ersetzten Dateien passieren }
  1058.       Incoming    : Word;       { Besondere Behandlung für eingehende Dateien }
  1059.  
  1060.       PackerName  : String[14]; { nur programmintern/Name des Packers }
  1061.       KeepDays    : LongInt;    { # of days to keep files in area }
  1062.       MaintOpt    : Word;       { Options for filearea-maintenance }
  1063.       KillDead    : LongInt;    { Kill dead area after x days }
  1064.       Empty       : Array[1..26] of Byte;
  1065.  
  1066.       {* -- Fields not occuring in the dialog -- *}
  1067.       FCount      : Word;       { mitgeführte Werte für File-Echo- }
  1068.       FSize       : LongInt;    { Statistiken / am Anfang alle auf 0 gesetzt }
  1069.  
  1070.       Created     : LongInt;    { Erstellungsdatum des Echos/gepacktes Format }
  1071.  
  1072.       FBBSName    : String[70]; { Pfad der FILES.BBS. Nur bei PB/CONC }
  1073.       Packer_ID   : Word;       { ID des zu verwendenden Packers }
  1074.  
  1075.       AnnCount    : Word;       { nur programmintern, Menge der Files     }
  1076.       AnnSize     : LongInt;    { nur programmintern, Größe der Files     }
  1077.       AnnList     : Pointer;    { nur programmintern, Liste der Announcen }
  1078.  
  1079.       FGroup_ID   : Word;       { ID der Dateigruppe }
  1080.       ID_FEcho    : Word;       { eigener ID des FileEchos }
  1081.  
  1082.  
  1083.       LastFile    : LongInt;    { Datum des letzten gehatchten Files }
  1084.       NewFiles    : Boolean;    { New files in this echo since last HATCH
  1085.                                   needed for DESCRIPT.ION }
  1086.       Unlink      : Byte;       { For AUTOUNLINK Feature }
  1087.  
  1088.       SaveSpace   : Array[1..28] of Byte;
  1089.     End;
  1090.  
  1091.   CONST
  1092.     { Options }
  1093.     eo_Sync    = $01;           { Sync Fileecho }
  1094.     eo_Force   = $02;           { Mandatory }
  1095.     eo_NoID    = $04;           { Don't add FILE_ID.DIZ }
  1096.     eo_Public  = $08;           { Area is public }
  1097.     eo_Pass    = $10;           { Area is passthrough }
  1098.     eo_Auto    = $20;           { Area is autounlink }
  1099.  
  1100.     { Incoming }
  1101.     ei_Touch   = $01;
  1102.     ei_Check   = $02;
  1103.     ei_VScan   = $04;
  1104.     ei_Repack  = $08;
  1105.  
  1106.     { Replaced }
  1107.     er_Kill    = 0;
  1108.     er_Move    = 1;
  1109.     er_Rename  = 2;
  1110.  
  1111.     { Multiple Werte für ID_FEcho }
  1112.     FEcho_OFF     = 0;
  1113.     FEcho_ON      = 1;
  1114.     FEcho_RECEIVE = 2;
  1115.     FEcho_SEND    = 3;
  1116.     FEcho_BOTH    = 4;
  1117.  
  1118.     { Banner }
  1119.     eb_Leave      = 0;
  1120.     eb_Replace    = 1;
  1121.     eb_Kill       = 2;
  1122.  
  1123.     { MaintOpt }
  1124.     mo_KillSpec   = $01;
  1125.  
  1126.     { Unlink }
  1127.     eu_Linked     = $01;
  1128.     eu_Cut        = $02;
  1129.  
  1130. {════════════════════════════════════════════════════════════}
  1131. { SubAKAInfo - SubAKAs eines Users                           }
  1132. {════════════════════════════════════════════════════════════}
  1133.  
  1134. TYPE
  1135.   PSubAKAInfo = ^TSubAKAInfo;
  1136.   TSubAKAInfo = Record
  1137.     Zone,
  1138.     Net,
  1139.     Node,
  1140.     Point        : LongInt;
  1141.  
  1142.     SubSwitches  : Word;          { Active / AutoCreate }
  1143.     Account      : String[7];     { Menge des Accounts }
  1144.     AccountType  : Word;          { Keiner / Tage / Anzahl kb }
  1145.     Domain       : String[12];
  1146.  
  1147.     AccountDate  : LongInt;       { Start des Accounts }
  1148.     FreeSpace    : Array[1..33] of Byte;
  1149.   End;
  1150.  
  1151.   CONST
  1152.     { Sub Switches }
  1153.     ss_SubActive = $01;
  1154.     ss_Create    = $02;
  1155.     ss_Forward   = $04;
  1156.  
  1157.     { Account-Handle }
  1158.     ah_Disable = $01;
  1159.     ah_Warn    = $02;
  1160.  
  1161.     { AccountType }
  1162.     ac_Free = $00;
  1163.     ac_DLkb = $01;
  1164.     ac_Days = $02;
  1165.  
  1166.  
  1167. {════════════════════════════════════════════════════════════}
  1168. { StartupInfo / Überprüfung der Archive bei Programmstart    }
  1169. {               die eventuell TIC-Dateien enthalten          }
  1170. {════════════════════════════════════════════════════════════}
  1171.   TYPE
  1172.     PStartupInfo = ^TStartupInfo;
  1173.     TStartupInfo = Record
  1174.       FileName : String[12]     { Überprüfe auf Archiv beim Start }
  1175.     End;
  1176.  
  1177. {════════════════════════════════════════════════════════════}
  1178. { Announce Gruppen                                           }
  1179. {════════════════════════════════════════════════════════════}
  1180.   TYPE
  1181.     PAnnounceInfo = ^TAnnounceInfo;
  1182.     TAnnounceInfo = Record
  1183.       GroupName  : String[30];  { Name der Announcegruppe }
  1184.       Options    : Word;        { Aktiv ? }
  1185.  
  1186.       AKAName   : String[20];   { programmintern / Verwendete AKA als Text }
  1187.       MsgArea   : String[30];   { Name einer evtl. Echomail-Area }
  1188.       MsgPwd    : String[8];    { optionales Passwort }
  1189.       FromN     : String[36];   { Von     : }
  1190.       ToN       : String[36];   { An      : }
  1191.       Subject   : String[72];   { Subject : }
  1192.  
  1193.       SaveSpace : Array[1..48] of Byte;
  1194.  
  1195.       Origin_ID : Word;         { ID der zu verwendenden Origin-Line }
  1196.       AKA_ID    : Word;         { ID der zu verwendenden AKA }
  1197.  
  1198.       FileEchos : TEchoArray;   { Einzubeziehende FileEchos }
  1199.       Systems   : TEchoArray;   { Zu benachrichtigende Netmail-Systeme }
  1200.       AutoAdd   : TGroupArray;  { Gruppen, deren Fileechos autozuadden sind }
  1201.     End;
  1202.  
  1203.   CONST
  1204.     { Options }
  1205.     ao_Active = $01;
  1206.  
  1207. {════════════════════════════════════════════════════════════}
  1208. { Origin-Lines                                               }
  1209. {════════════════════════════════════════════════════════════}
  1210.   TYPE
  1211.     POriginInfo = ^TOriginInfo;
  1212.     TOriginInfo = Record
  1213.       Text      : String[60];   { Text in der Origin-Line }
  1214.       SaveSpace : Array[1..20] of Byte;
  1215.  
  1216.       ID_Origin : Word;         { ID der Origin-Line }
  1217.     End;
  1218.  
  1219. {════════════════════════════════════════════════════════════}
  1220. { Skullcheck CRC-Files / für temporäre Liste zum laden der   }
  1221. {                        CRC-Datei / nur programmintern      }
  1222. {════════════════════════════════════════════════════════════}
  1223.   TYPE
  1224.     PSkChkInfo = ^TSkChkInfo;
  1225.     TSkChkInfo = Record
  1226.       Size  : LongInt;
  1227.       CRC32 : String[8];
  1228.       FName : String[13];
  1229.  
  1230.       SaveSpace : Array[0..1] of Byte;
  1231.     End;
  1232.  
  1233. {════════════════════════════════════════════════════════════}
  1234. { AliasNamen/Magics für Request-Prozessor                    }
  1235. {════════════════════════════════════════════════════════════}
  1236.   TYPE
  1237.     PAliasInfo = ^TAliasInfo;
  1238.     TAliasInfo = Record
  1239.       Alias    : String[20];   { Alias/Magic }
  1240.       FName    : String[70];   { Name der zugehörigen Datei }
  1241.       Password : String[15];   { Password für den Aliasnamen }
  1242.       Options  : Word;
  1243.  
  1244.       SaveSpace : Array[1..2] of Byte;
  1245.     End;
  1246.  
  1247.   CONST
  1248.     ao_First  = $00;
  1249.     ao_Latest = $01;
  1250.  
  1251. {════════════════════════════════════════════════════════════}
  1252. { Filefind-Areas                                             }
  1253. {════════════════════════════════════════════════════════════}
  1254.  TYPE
  1255.    PFFindAreaInfo = ^TFFindAreaInfo;
  1256.    TFFindAreaInfo = Record
  1257.      Description : String[40];   { Beschreibung }
  1258.      Active      : Word;
  1259.      AKAString   : String[30];   { programmintern / benutzte AKA als String }
  1260.      OriginStr   : String[60];   { programmintern / Origin als String }
  1261.  
  1262.      F_BaseType  : Word;         { MsgBase Typ der "FROM/Scan"-Msgbase }
  1263.      F_JAM       : String[70];     { Pfad }
  1264.      F_SQUISH    : String[70];     { Pfad }
  1265.      F_HUDSON    : LongInt;        { Nummer }
  1266.      F_NETMAIL   : String[70];     { Pfad }
  1267.      F_EZY_B     : LongInt;        { Nummer und }
  1268.      F_EZY_P     : String[70];     { Pfad }
  1269.  
  1270.      T_BaseType  : Word;         { Msgbase Typ der "TO/Reply"-MsgBase }
  1271.      T_JAM       : String[70];     { Pfad }
  1272.      T_SQUISH    : String[70];     { Pfad }
  1273.      T_HUDSON    : LongInt;        { Nummer }
  1274.      T_NETMAIL   : String[70];     { Pfad }
  1275.      T_EZY_B     : LongInt;        { Nummer und }
  1276.      T_EZY_P     : String[70];     { Pfad }
  1277.  
  1278.      SaveSpace   : Array[1..30] of Byte;
  1279.  
  1280.      Origin_ID   : Word;   { ID der zu verwendenen Origin-Line }
  1281.      AKA_ID      : Word;   { ID der zu verwendenen AKA }
  1282.    End;
  1283.  
  1284.    { BaseType }
  1285.    CONST
  1286.      fb_JAM      = $00;
  1287.      fb_SQUISH   = $01;
  1288.      fb_HUDSON   = $02;
  1289.      fb_NETMAIL  = $03;
  1290.      fb_EZY      = $04;
  1291.  
  1292. {════════════════════════════════════════════════════════════}
  1293. { Forward-Manager System                                     }
  1294. {════════════════════════════════════════════════════════════}
  1295.   TYPE
  1296.     TAutoUpdate = Record
  1297.       Active    : Word;               { Aktiv ? }
  1298.       Command   : String[30];         { Befehl für die Arealiste }
  1299.       Freq      : Word;               { Wie oft Arealiste anfordern ? }
  1300.  
  1301.       SaveSpace : Array[1..20] of Byte;
  1302.     End;
  1303.  
  1304.     PForwardInfo = ^TForwardInfo;
  1305.     TForwardInfo = Record
  1306.       Group     : String[30];         { Name der zugehörigen Dateigruppe }
  1307.       Active    : Word;               { Aktiv ? }
  1308.       UP_Name   : String[30];         { Name des Uplinks }
  1309.       Up_AKA    : String[30];         { AKA des Uplinks }
  1310.       Password  : String[30];         { AreaMgr-Passwort beim Uplink }
  1311.       AreaMgr   : String[15];         { Alias des AreaMgr }
  1312.       AreaList  : String[70];         { Name der fidonet.na Datei }
  1313.  
  1314.       SaveSpace : Array[1..50] of Byte;
  1315.  
  1316.       FGroup_ID : Word;               { ID der Dateigruppe }
  1317.       User_ID   : Word;               { ID des Uplinks }
  1318.  
  1319.       UpDate    : TAutoUpdate;        { s.o. }
  1320.     End;
  1321.  
  1322.   CONST
  1323.     { AutoUpdate.Freq }
  1324.       au_Daily   = $00;
  1325.       au_Weekly  = $01;
  1326.       au_Monthly = $02;
  1327.  
  1328. {════════════════════════════════════════════════════════════}
  1329. { Magic-System                                               }
  1330. {════════════════════════════════════════════════════════════}
  1331.   TYPE
  1332.     PMagicInfo = ^TMagicInfo;
  1333.     TMagicInfo = Record
  1334.       MagicName : String[25];            { Name des Magictypen }
  1335.       MagicBuf  : Array[1..200] of Byte; { Puffer zum Speichern der Daten }
  1336.  
  1337.       MagicType : Byte;                  { Typ des Magic-Eintrags }
  1338.     End;
  1339.  
  1340.   CONST
  1341.     { MagicType }
  1342.       mt_NoType      = 00;
  1343.       mt_CopyFile    = 01;
  1344.       mt_DeleteFile  = 02;
  1345.       mt_ExecCom     = 03;
  1346.       mt_NoHatch     = 04;
  1347.       mt_Unpack      = 05;
  1348.       mt_Rename      = 06;
  1349.  
  1350. {════════════════════════════════════════════════════════════}
  1351. { Outbound-System                                            }
  1352. {════════════════════════════════════════════════════════════}
  1353.   TYPE
  1354.     POutboundInfo = ^TOutboundInfo;
  1355.     TOutboundInfo = Record
  1356.       Addr : TAddr;            { Dest-Addr for this entry }
  1357.       Name : String[128];      { Filename for DestAddr }
  1358.       Kill : Boolean;          { Kill file after sending }
  1359.       Flag : Char;             { Crash oder Hold }
  1360.     End;
  1361.  
  1362.  
  1363. {════════════════════════════════════════════════════════════}
  1364. { Sicherung zu packender TIC-Files                           }
  1365. {════════════════════════════════════════════════════════════}
  1366.   TYPE
  1367.     POutTICInfo = ^TOutTICInfo;
  1368.     TOutTICInfo = Record
  1369.       ID   : Word;
  1370.       FrAddr : TAddr;          { Source-Addr for this entry }
  1371.       ToAddr : TAddr;          { Dest-Addr for this entry }
  1372.       Name : String[128];      { Filename for DestAddr }
  1373.     End;
  1374.  
  1375.  
  1376. {════════════════════════════════════════════════════════════}
  1377. { MiscAKAInfo / Mischung aus User und seinen SubAKAs /       }
  1378. {               nur programmintern / wird nicht auf          }
  1379. {               Festplatte gespeichert                       }
  1380. {════════════════════════════════════════════════════════════}
  1381. TYPE
  1382.   PSubAKAMisc = ^TSubAKAMisc;
  1383.   TSubAKAMisc = Record
  1384.     { Von TUserInfo }
  1385.     Name        : String[40];
  1386.     Zone        ,
  1387.     Net         ,
  1388.     Node        ,
  1389.     Point       : Longint;
  1390.     Active      : Word;
  1391.     Connect     : Word;
  1392.     m_Domain      : String[15];
  1393.     PassWord    : String[10];
  1394.     SecLevel    : LongInt;
  1395.     Rescan      : LongInt;
  1396.     AccountHandle : Word;
  1397.     WarningDays   : LongInt;
  1398.     Switches    : Word;
  1399.     MailF       : Word;
  1400.     FileF       : Word;
  1401.     ID_User     : Word;
  1402.  
  1403.     SubAKAName  : String[12];
  1404.  
  1405.     { Von TSubAKAInfo }
  1406.     SubSwitches  : Word;
  1407.     Account      : String[7];
  1408.     AccountType  : Word;
  1409.     Domain       : String[12];
  1410.     AccountDate  : LongInt;
  1411.   End;
  1412.  
  1413.   CONST
  1414.     UserCopy   = 7 * 2 + 7 * 4 + 41 + 16 + 11;
  1415.     SubAKACopy = 1 * 4 + 2 * 2 + 8 + 13;
  1416.  
  1417.  
  1418. CONST
  1419.   { SubAkaMisc.Active }
  1420.   ui_MAINAKA  = $10; { Kennzeichen daß dies die MAIN-AKA ist }
  1421.                      { wird nicht gespeichert / nur programmintern }
  1422.  
  1423.   ui_NOSUBAKA = $20; { Kennzeichen, daß dies ein Eintrag ist, der }
  1424.                      { keine Sub-AKAs hat, d.h. es gibt nur die }
  1425.                      { MainAKA / nur programmintern }
  1426.  
  1427.         {************************************************************}
  1428.         {              -------- ENDE DER DATEI --------              }
  1429.         {************************************************************}
  1430.  
  1431.